神替每一個選擇寫好了結局,他向我們提出了問題,是我們選擇了結局 --《孤單又燦爛的神——鬼怪》
根據上一篇已經寫完的Entity,我們要為它撰寫基本的單元測試,我們這次使用 JUnit 5 來進行單元測試。
單元測試(Unit testing )又稱為模組測試,是針對程式模組(軟體設計的最小單位)來進行邏輯正確性驗證,通常是由開發人員自己撰寫,自己寫的程式自己測!
使用單元測試可以幫助我們驗證撰寫程式是否符合實際結果,而其實撰寫單元測試通常會額外花費大量的時間,不過若我們都有確實實施,它是可以為我們帶來許多好處的,例如我們為新需求撰寫程式碼時,可以利用單元測試檢查新程式碼是否會造成先前的程式出現異常,避免更版後出現許多問題,讓我們可以即時發現問題。
我們在撰寫測試時,可以參考 3A 原則進行測試撰寫,規範如下:
以下是一個簡單的測試範例:

在 Java 領域裡 JUnit 是最多人使用的測試套件,用於開發平台上運行的測試框架API,而Junit 版本又可分為 Jupiter 版本與 Vintage 版本,說明如下:
這次專案使用的JUnit 5(支持Java 8以上),但是我們一開始建置Spring Boot 專案時,spring-boot-starter-test 這個dependency預設會import Junit 4 ,所以我們要排除Junit 4 並加入Junit 5
先在pom.xml 移除JUnit 4
<!-- exclude junit 4 -->
<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
 </dependency>
加入JUnit 5
<!-- add junit 5 -->
<dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-engine</artifactId>
    <scope>test</scope>
</dependency>
接下來,我們要前一篇文章的Todo Entity撰寫基本的單元測試
ToDoEntityTest.java
@Test這個方法,使它執行為一個測試案例,在org.junit.jupiter.api 裡assertEquals 判斷實際值是否符合預期值(1)底下為測試 Todo Entity 是否有正確設定值
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class TestTodoEntity {
    @Test
    public void whenGetId_ThenSetId() {
        Todo todo = new Todo();
        todo.setId(1);
        Integer expected = 1;
        Integer actual = todo.getId();
        assertEquals(expected, actual);
    }
    @Test
    public void whenGetTask_ThenSetTask() {
        Todo todo = new Todo();
        todo.setTask("洗衣服");
        String expected = "洗衣服";
        String actual = todo.getTask();
        assertEquals(expected, actual);
    }
    @Test
    public void whenSetTask_ThenGetTask() {
        Todo todo = new Todo();
        todo.setStatus(2);
        Integer expected = 2;
        Integer actual = todo.getStatus();
        assertEquals(expected, actual);
    }
}
(2)執行測試程式,查看是否成功,在測試方法或類別(左方),點擊綠色的啟動鍵選擇Run "xxxxx" ,如圖示,即可以啟動測試,待程式執行完畢,看到測試是否有成功

(3)測試覆蓋率(Coverage)是軟體測試中的重要指標,運行這些測試用例時覆蓋並且執行了哪些程式碼,亦指原始碼被測試的比例和程度。點擊Class 左方的綠色按鈕選擇Run "xxxxxxxxx" with Coverage,待程式執行完畢,即可看到Todo類別的測試覆蓋率了。